home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
c
/
stik_dev
/
forecast
/
disk.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-12-31
|
3KB
|
132 lines
/**************************************************************/
/* Disk.C v.05 */
/* */
/* Simple Disk routines */
/**************************************************************/
#include <osbind.h>
#include <string.h>
#include <stdio.h>
#include "disk.i"
extern char city_tla[3];
/**************************************************************/
/* my_Fwrite - avoids sending 0 length to Fwrite */
/* This avoids crashes on TOS 1.0 & 1.2 */
/**************************************************************/
void
my_Fwrite(int file_handle, int file_length, char *string)
{
if (file_length > 0)
{
Fwrite(file_handle,(long)file_length,string);
}
}
/***************************************************************/
/* */
/* File IO section */
/* */
/***************************************************************/
long
create_file(char *file_to_make)
{
char message[64];
long cr_ret;
cr_ret = Fcreate(file_to_make,0x0);
if (cr_ret > 0)
{
Fclose((int)cr_ret);
}
else
{
strcpy(message, "[1][");
strcat(message, "Can't create file.");
strcat(message, " ][ OK ]");
form_alert(1, message);
}
return cr_ret;
}
long
write_prefs_file(char *file_to_make)
{
long cr_ret;
char file_buffer[128];
char file_buffer2[128];
cr_ret = Fopen(file_to_make,1);
if (cr_ret > 0)
{
sprintf(file_buffer,"%s",city_tla);
sprintf(file_buffer2,"%02d",(int)strlen(file_buffer));
Fwrite((int)cr_ret,strlen(file_buffer2),file_buffer2);
Fwrite((int)cr_ret,1,"\n");
my_Fwrite((int)cr_ret,(int)strlen(file_buffer),file_buffer);
Fwrite((int)cr_ret,1,"\n");
Fclose((int)cr_ret);
}
return cr_ret;
}
long
read_prefs_file(char *file_to_make)
{
long cr_ret;
int header_length;
char file_buffer[300];
char header_buffer[2];
cr_ret = Fopen(file_to_make,0);
if (cr_ret > 0)
{
Fread((int)cr_ret,2,&header_buffer);
stcd_i(header_buffer,&header_length);
Fread((int)cr_ret,1,&file_buffer);
Fread((int)cr_ret,(long)header_length,&city_tla);
Fread((int)cr_ret,1,&file_buffer);
Fclose((int)cr_ret);
}
else
{
/* create it */
create_file(file_to_make);
write_prefs_file(file_to_make);
}
return cr_ret;
}
/*
* construct_path - build a GEMDOS path name out of a stem, which
* optionally has junk on the end which we must delete, and a filename
* which we are interested in.
*/
void
construct_path(char *dest,const char *path,const char *name)
{
char *s=NULL; /* used to track the position after final \ or : */
if (path[0] && path[1]==':')
s=&dest[2];
while (*dest++=*path)
if (*path++=='\\')
s=dest;
if (!s)
s=dest;
strcpy(s,name);
}